Scalable image compression techniques, typically based on wavelet processing, generally format compressed image data such that the compressed data required to generate decompressed images of different resolutions or qualities can be readily extracted from the rest of the compressed data.
An example of this type of compression is the JPEG-2000 compressed still image format, as specified in ISO/IEC IS 15444-1. In JPEG 2000, scalability is provided by encoding the compressed data in code blocks that are ordered according to a progression. The four dimensions of a progression are resolution, quality, spatial location and component. Encoded data is ordered in the compressed bitstream according to the specified progression. Thus, generally speaking, if the progression is resolution, quality, spatial location and component, then all of the data required to produce the lowest resolution image is collected in one part of the bitstream, whereas other data required to produce the next higher resolution image is in the next part of the bitstream. The highest resolution image is produced by decompressing the entire compressed bitstream for the image. As a result, different kinds of scalability can be provided, the most common of which are quality, resolution and spatial scalability. For this application, the data that provides lower quality, or lower resolution, or a spatial or component subset of an image is referred to as the “lower bandwidth” data of the image.
Another part of the JPEG-2000 standard has been defined to apply to motion video ISO/IEC IS 15444-3. In this format, motion video, which is comprised of a sequence of still images, is compressed by compressing each still image in accordance with the JPEG 2000 still image compression standard. The compressed still images are collected into a file.
Because of the scalability provided by this compression format, it is possible to access a low resolution or low quality version of an image without reading the whole image file. For motion video, a video player or transmitter can simply drop data that will not be used.